﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using InfraWEB.BLL;
using InfraWEB.Comum.Enum;

namespace InfraWEB.UI
{
    public partial class RetirarItemEstoque : Base
    {
        protected void Page_Load(object sender, EventArgs e)
        {
			CheckIfUsuarioIsLogged();
			CheckIfUsuarioHasAccessPermission(int.Parse(Enumeration.TipoUsuarioName.EquipeAdministrativaIndex));
			if (!Page.IsPostBack)
			{
				CarregarPredios();
				CarregarItens();
			}
        }

        private void CarregarPredios()
        {
            Predio building = new Predio();
            InfraWEB.DAL.Infra.PredioDataTable tabela = building.GetAllPredios();

            foreach (InfraWEB.DAL.Infra.PredioRow item in tabela)
            {
                ddlBuilding.Items.Add(new ListItem(item.PreNome, item.PreId.ToString()));
            }
        }

        private void CarregarItens()
        {
            ItemEstoque itemEstoque = new ItemEstoque();
            InfraWEB.DAL.ControleEstoque.ItemEstoqueDataTable tabela = itemEstoque.GetAllItensEstoque();

            foreach (InfraWEB.DAL.ControleEstoque.ItemEstoqueRow item in tabela)
            {
                ddlItem.Items.Add(new ListItem(item.IesNome, item.IesId.ToString()));
            }
        }

        protected void btnRetirar_Click(object sender, EventArgs e)
        {
            HistoricoMovimentacaoEstoque historico = new HistoricoMovimentacaoEstoque();
            ItemEstoque itemEstoque = new ItemEstoque();

            string employee = txtFuncionario.Text;
            int quantity = int.Parse(txtQuantity.Text);

            int item = int.Parse(ddlItem.Text);
            int building = int.Parse(ddlBuilding.Text);

            itemEstoque.AlterarQuantidadeItemEstoque(item, -quantity);

            historico.RecordHistoricoMovimentacaoEstoque(employee, DateTime.Now, int.Parse(Enumeration.TipoMovimentacaoEstoqueName.RetiradaIndex), quantity, building, item, LoggedUsuarioId);

            lblMensagem.Visible = false;
            lblMensagem.Text = "";
            Context.Session["ItemRegisterStatus"] = "true";
            Response.Redirect("~/ItemEstoqueLista.aspx");
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/ItemEstoqueLista.aspx");
        }
    }
}
